{{item.codeName}}: {
    caption: "{{item.caption}}",
    {{#if item.subCaption}}
    subCaption: "{{item.subCaption}}",
    {{/if}}
    captionItemName: "{{item.captionItemName}}",
    name: "{{item.name}}",
    codeName: "{{item.codeName}}",
    disabled: false, 
    visible: {{#if (eq item.showMoreMode 1)}}false{{else}}true{{/if}},
    detailStyle: "{{item.detailStyle}}",
    detailType: "{{item.detailType}}",
    {{#if (eq item.detailType 'MDCTRL')}}
    contentType: "{{item.contentType}}",
    {{#if (eq item.contentType 'REPEATER')}}
    childrenCodeName: [
        {{#each item.psDEFormDetails as | tempDetail |}}
        "{{tempDetail.codeName}}"{{#unless @last}},{{/unless}}
        {{/each}}
    ],
    {{/if}}
    {{/if}}
    {{#and item.parent item.parent.detailType (eq item.parent.detailType 'MDCTRL') (eq item.parent.contentType 'REPEATER')}}
    parentIsRepeater: true,
    parentCodeName: '{{item.parent.codeName}}',
    {{#if item.fieldName}}
    valueItem: '{{item.fieldName}}',
    {{/if}}
    {{/and}}
    {{#and (eq item.detailType 'MDCTRL') (eq item.contentType 'REPEATER')}}
    createDefaultItems: [
        {{#each item.psDEFormDetails as | tempDetail |}}
        {{#if (or tempDetail.createDV tempDetail.createDVT)}}
        {
            createDV: "{{tempDetail.createDV}}",
            createDVT: "{{tempDetail.createDVT}}",
            property: "{{lowerCase tempDetail.name}}",
            {{#if (and tempDetail.psEditor tempDetail.psEditor.dateTimeFormat)}}
            valueFormat: "{{tempDetail.editItem.psEditor.dateTimeFormat}}",
            {{else if tempDetail.psAppDEField}}
            valueFormat: "{{tempDetail.psAppDEField.valueFormat}}",
            {{/if}}
            dataType: {{tempDetail.dataType}},
        }{{#unless @last}},{{/unless}}
        {{/if}}
        {{/each}}
    ],
    updateDefaultItems: [
        {{#each item.psDEFormDetails as | tempDetail |}}
        {{#if (or tempDetail.updateDV tempDetail.updateDVT)}}
        {
            updateDV: "{{tempDetail.updateDV}}",
            updateDVT: "{{tempDetail.updateDVT}}",
            property: "{{lowerCase tempDetail.name}}",
            {{#if (and tempDetail.psEditor tempDetail.psEditor.dateTimeFormat)}}
            valueFormat: "{{tempDetail.editItem.psEditor.dateTimeFormat}}",
            {{else if psAppDEField}}
            valueFormat: "{{tempDetail.psAppDEField.valueFormat}}",
            {{/if~}}
            dataType: {{tempDetail.dataType}},
        }{{#unless @last}},{{/unless}}
        {{/if}}
        {{/each}}
    ],
    {{/and}}
    showCaption: {{#if item.showCaption}}true{{else}}false{{/if}},
    enableAnchor: {{#if item.enableAnchor}}true{{else}}false{{/if}},
    showMoreMode: {{item.showMoreMode}},
    {{#if item.memo}}
    memo: "{{item.memo}}",
    {{/if}}
    {{#if item.valueFormat}}
    valueFormat: "{{item.valueFormat}}",
    {{else}}
    {{#if item.psAppDEField}}
    valueFormat: "{{item.psAppDEField.valueFormat}}",
    {{/if}}
    {{/if}}
    {{#if (eq item.detailType "FORMITEM")}}
    {{#if psAppDEField}}
    fieldCodeName: "{{psAppDEField.codeName}}",
    {{/if}}
    dataType: "{{item.dataType}}",
    required: {{#if item.allowEmpty}}false{{else}}true{{/if}},
    enableCond: {{item.enableCond}},
    ignoreInput: {{item.ignoreInput}},
    convertToCodeItemText: {{item.convertToCodeItemText}},
    {{#and item.psEditor (neq item.psEditor.editorType 'HIDDEN') item.psEditor.editorParams}}
    editRules: {
        editorType: '{{item.psEditor.editorType}}',
		{{#if item.psEditor.editorParams.maxvalue}}
        maxValue: {{item.psEditor.editorParams.maxvalue}},
		{{/if}}
		{{#if item.psEditor.editorParams.minvalue}}
        minValue: {{item.psEditor.editorParams.minvalue}},
		{{/if}}
		{{#if item.psEditor.editorParams.maxlength}}
        maxLength: {{item.psEditor.editorParams.maxlength}},
		{{/if}}
		{{#if item.psEditor.editorParams.minlength}}
        minLength: {{item.psEditor.editorParams.minlength}},
		{{/if}}
		{{#if item.psEditor.editorParams.precision}}
        precision: {{item.psEditor.editorParams.precision}},
		{{/if}}
		{{#if item.psEditor.psSysValueRule}}
        getPSSysValueRule: {
            ruleType: '{{item.psEditor.psSysValueRule.ruleType}}',
        {{#eq item.psEditor.psSysValueRule.ruleType 'REG'}}
            regExCode: new RegExp("{{item.psEditor.psSysValueRule.regExCode}}"),
        {{/eq}}
            ruleInfo: {{item.psEditor.psSysValueRule.ruleInfo}}
        }
		{{/if}}
    },
    {{/and}}
    {{#if item.psEditor.psAppCodeList}}
    codeListTag: "{{item.psEditor.psAppCodeList.codeListTag}}",
    {{/if}}
    layout:{{> @macro/common/layoutPos.hbs layout=item.psLayout layoutPos=item.psLayoutPos}},
    {{#if item.psDEFormItemUpdate}}
    formItemUpdate: {
        {{#if item.psDEFormItemUpdate.customCode}}
        customCode: {{item.psDEFormItemUpdate.customCode}},
        scriptCode: `{{item.psDEFormItemUpdate.scriptCode}}`,
        {{else}}
        showBusyIndicator: "{{item.psDEFormItemUpdate.showBusyIndicator}}",
        appDEMethod: "{{item.psDEFormItemUpdate.psAppDEMethod.codeName}}",
        updateDetails: [
        {{#each item.psDEFormItemUpdate.psDEFIUpdateDetails as | updateDetails | }}
            "{{updateDetails.name}}",
        {{/each}}
        ],
        {{/if}}
    },
    {{/if}}
    {{#if item.resetItemName}}
    resetItemName: "{{item.resetItemName}}",
    {{/if}}
    {{#if item.valueItemName}}
    valueItemName: "{{item.valueItemName}}",
    {{/if}}
    {{/if}}
    {{#if (and (eq item.detailType "BUTTON") item.psUIAction)}}
    actionType:'{{item.actionType}}',
    uIAction: {
        caption: "{{item.psUIAction.caption}}",
        uIActionMode: "{{item.psUIAction.uIActionMode}}",
        disabled: false,
        visible: true,
        uIActionTag: "{{item.psUIAction.uIActionTag}}",
        {{#if item.psUIAction.noPrivDisplayMode}}
        noPrivDisplayMode: {{item.psUIAction.noPrivDisplayMode}},
        {{/if}}
        dataAccessAction: "{{item.psUIAction.dataAccessAction}}",
        actionTarget: "{{item.psUIAction.actionTarget}}",
        showCaption: {{item.showCaption}},
        predefinedType: "{{item.psUIAction.predefinedType}}",
        actionDECodeName: "{{#if psUIAction.psAppDataEntity}}{{psUIAction.psAppDataEntity.codeName}}{{/if}}",
        {{#if item.psUIAction.psSysImage}}{{#if item.psUIAction.psSysImage.imagePath}}imgPath: "{{item.psUIAction.psSysImage.imagePath}}",{{/if}}
        {{#if item.psUIAction.psSysImage.cssClass}}iconClass: "{{item.psUIAction.psSysImage.cssClass}}"{{/if}}{{/if}}
    },
    {{/if}}
    {{#if (and (eq item.detailType "BUTTON") item.psDEFormItemUpdate)}}
    actionType:'{{item.actionType}}',
    formItemUpdate: {
        {{#if item.psDEFormItemUpdate.customCode}}
        customCode: {{item.psDEFormItemUpdate.customCode}},
        scriptCode: `{{item.psDEFormItemUpdate.scriptCode}}`,
        {{else}}
        showBusyIndicator: "{{item.psDEFormItemUpdate.showBusyIndicator}}",
        appDEMethod: "{{item.psDEFormItemUpdate.psAppDEMethod.codeName}}",
        updateDetails: [
        {{#each item.psDEFormItemUpdate.psDEFIUpdateDetails as | updateDetails | }}
            "{{updateDetails.name}}",
        {{/each}}
        ],
        {{/if}}
    },
    {{/if}}
    {{#if (eq item.detailType "GROUPPANEL")}}
    showMoreItems: [
    {{#each item.psDEFormDetails as | tempDetail |}}
        {{#if (eq tempDetail.showMoreMode 1)}}
        "{{tempDetail.name}}",
        {{/if}}
    {{/each}}
    ],
    {{/if}}
    {{#if (and (eq item.detailType "GROUPPANEL") item.psUIActionGroup)}}
    uIActionGroup: {
        extractMode: "{{item.psUIActionGroup.actionGroupExtractMode}}",
        caption: "{{item.psUIActionGroup.name}}",
        details: [
        {{#each item.psUIActionGroup.psUIActionGroupDetails as | detail | }}
            {
                caption: "{{detail.psUIAction.caption}}",
                uIActionMode: "{{detail.psUIAction.uIActionMode}}",
                disabled: false,
                visible: true,
                uIActionTag: "{{detail.psUIAction.uIActionTag}}",
                {{#if detail.psUIAction.noPrivDisplayMode}}
                noPrivDisplayMode: {{detail.psUIAction.noPrivDisplayMode}},
                {{/if}}
                dataAccessAction: "{{detail.psUIAction.dataAccessAction}}",
                actionTarget: "{{detail.psUIAction.actionTarget}}",
                showCaption: {{detail.showCaption}},
                showIcon: {{detail.showIcon}},
                predefinedType: "{{detail.psUIAction.predefinedType}}",
                actionDECodeName: "{{#if detail.psUIAction.psAppDataEntity}}{{detail.psUIAction.psAppDataEntity.codeName}}{{/if}}",
                {{#if detail.psUIAction.psSysImage}}{{#if detail.psUIAction.psSysImage.imagePath}}imgPath: "{{detail.psUIAction.psSysImage.imagePath}}",{{/if}}
                {{#if detail.psUIAction.psSysImage.cssClass}}iconClass: "{{detail.psUIAction.psSysImage.cssClass}}"{{/if}}{{/if}}
            },
        {{/each}}
        ],
    },
    {{/if}}
    {{#if item.psDEFDGroupLogics}}
    groupLogics: [
        {{#each item.psDEFDGroupLogics as | groupLogic |}}
        {{> @macro/common/delogic.hbs logic=groupLogic}}
        {{/each}}
    ],
    {{/if}}
},
{{#if item.psDEFormDetails}}
{{#each item.psDEFormDetails as | tempDetail |}}
{{> @macro/widgets/form-detail/include-form.hbs type="FORMDETAILSMODEL" item=tempDetail}}
{{/each}}
{{/if}}
{{#if item.psDEFormTabPages}}
{{#each item.psDEFormTabPages as | tempDetail |}}
{{> @macro/widgets/form-detail/include-form.hbs type="FORMDETAILSMODEL" item=tempDetail}}
{{/each}}
{{/if}}